<?PHP
////////////////////////////////////////////////////////////////////////////
//                                                                        //
// NOTICE OF COPYRIGHT                                                    //
//                                                                        //
// Dean`s Office for Moodle                                               //
// Электронный деканат                                                    //
// <http://deansoffice.ru/>                                               //
//                                                                        //
// Copyright (C) 2008-2999  Alex Djachenko (Алексей Дьяченко)             //
// alex-pub@my-site.ru                                                    //
// This program is free software: you can redistribute it and/or modify   //
// it under the terms of the GNU General Public License as published by   //
// the Free Software Foundation, either version 3 of the Licensen.        //
//                                                                        //
// This program is distributed in the hope that it will be useful,        //
// but WITHOUT ANY WARRANTY; without even the implied warranty of         //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          //
// GNU General Public License for more details.                           //
//                                                                        //
// You should have received a copy of the GNU General Public License      //
// along with this program.  If not, see <http://www.gnu.org/licenses/>.  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

// Подключаем библиотеки
require_once('lib.php');
require_once($DOF->plugin_path('sync','mreports','/reports/teacherfull/init.php'));
//require_once($DOF->plugin_path('sync','mreports','/reports/studentfull/init.php'));
//require_once($DOF->plugin_path('sync','mreports','/reports/studentshort/init.php'));
//require_once($DOF->plugin_path('sync','mreports','/reports/teachershort/init.php'));


$DOF->modlib('nvg')->print_header(NVG_MODE_PORTAL);
echo "<pre>";
// Инициализируем
$DOF->storage('reports');
// Объявляем класс
class dof_im_atest_report_test extends dof_storage_reports_basereport
{
    /**
     * Тип плагина, объявившего тип отчета
     */
    public function plugintype()
    {
        return 'im';
    }
    /**
     * Код плагина, объявившего тип отчета
     */
    public  function plugincode()
    {
        return 'atest';
    }
    /**
     * Код типа отчета
     */
    public  function code()
    {
        return 'test';
    }
    /**
     * Название отчета
     */
    public  function name()
    {
        return 'test';
    }
    /**
     * Исполнить действия, сопутствующие исполнению отчета
     *
     * @param object $order
     * @return bool
     */
    protected function generate_data($report)
    {
        print_object($report);
        echo "\nГенерация данных отчета, по данным пользователя {$this->get_id()}(={$report->id}), data->testid={$report->data->testid}";
        return $report;
    }
}
// Готовим объект с данными приказа
$obj = new object();
$obj->departmentid = 0;
$obj->personid = 1;
$obj->data->testid = 18;
$obj->data->testtext = "Про\\'ве\\\"рка!";
// Создаем объект приказа
//$report = new dof_im_atest_report_test($DOF);
//$report = new dof_sync_mreports_student_short($DOF);
//$report = new dof_sync_mreports_teacher_short($DOF);
//$report = new dof_sync_mreports_report_studentfull($DOF);
$report = new dof_sync_mreports_report_teacherfull($DOF);
echo "\nСохранение запроса отчета: ";
if ( $report->save($obj) )
{
    echo " [ok]";
}
// Отображаем id
echo "\nПолучение id отчета: ";
if (is_int($report->get_id()))
{
    echo " {$report->get_id()} [ok]";
}
echo "\nГенерация данных отчета и запись данных в файл:";
if ( $report->generate())
{
    echo " [ok]";
}
echo "\nПроверка cгенерирования отчета:";
if ( $report->is_generate($report->load()) )
{
    echo " [ok]";
}
echo "\nПопытка повторной генерации данных отчета и запись данных в файл:";
if ( ! $report->generate())
{
    echo " [ok]";
}
echo "\nЧтение данных отчета из файла:";
if ($obj2 = $report->load_file($report->get_id(),false))
{
    echo " [ok]";
}/*
echo "\nПроверяем правильность прочитанных данных:";

if (    
        $obj->departmentid == $obj2->_departmentid
        AND $obj->personid == $obj2->_personid
        AND $obj->data->testid == $obj2->testid
        AND $obj->data->testtext == $obj2->testtext
    )
{
    echo " [ok]";
}else
{
    var_dump($obj);
    var_dump($obj2);
}*/
echo "\nПроверяем функцию получения шаблона (который не определен):";
if (!$report->template())
{
    // Ошаблона нет
    echo " [ok]";
}else
{
    var_dump($obj);
    var_dump($obj2);
}
echo "\nПроверяем функцию отображения данных отчета для шаблона:";
echo $report->show();

echo "\n<br />Проверяем функцию получения списка отчетов по коду:";
$options = array('code' => 'test',
                 'id'   => array(3, 4, 5, 6)
                 );
$sort      = ' id DESC ';
$fields    = 'id, name, code';
$limitfrom = 0;
$limitnum  = 3;
print_object($DOF->storage('reports')->get_report_listing($options, $sort, $fields, $limitfrom, $limitnum));

echo "</pre>";
$DOF->modlib('nvg')->print_footer(NVG_MODE_PORTAL);



?>